home *** CD-ROM | disk | FTP | other *** search
/ Mac Cube 4: Multimedia Applications / MacCube Volume 4: Multimedia Applications.iso / Graphics / POV Ray / POVRAY II (FPU) / INCLUDE / SHAPES.OLD < prev    next >
Text File  |  1993-10-01  |  4KB  |  193 lines

  1. // Persistence Of Vision Raytracer 2.0
  2. // Historical include file.
  3.  
  4. // Old standard shapes include file
  5. // Included for historical comparison.  
  6. // Some shapes were changed
  7. // for POV-Ray Version 1.0.
  8.  
  9. #declare Shapes_Old_Temp = version
  10.  
  11. #version 2.0
  12.  
  13. #declare Sphere = 
  14.  quadric 
  15.   {<1, 1, 1>,
  16.    <0, 0, 0>,
  17.    <0, 0, 0>, -1
  18.   }
  19.  
  20. #declare Cylinder_X = 
  21.  quadric 
  22.   {<0, 1, 1>,
  23.    <0, 0, 0>,
  24.    <0, 0, 0>, -1
  25.   }
  26.  
  27. #declare Cylinder_Y = 
  28.  quadric 
  29.   {<1, 0, 1>,
  30.    <0, 0, 0>,
  31.    <0, 0, 0>, -1
  32.   }
  33.  
  34. #declare Cylinder_Z = 
  35.  quadric 
  36.   {<1, 1, 0>,
  37.    <0, 0, 0>,
  38.    <0, 0, 0>, -1
  39.   }
  40.  
  41. #declare Cone_X = 
  42.  quadric 
  43.   {<-1, 1, 1>,
  44.    < 0, 0, 0>,
  45.    < 0, 0, 0>, 0
  46.   }
  47.  
  48. #declare Cone_Y = 
  49.  quadric 
  50.   {<1, -1, 1>,
  51.    <0,  0, 0>,
  52.    <0,  0, 0>, 0
  53.   }
  54.  
  55. #declare Cone_Z = 
  56.  quadric 
  57.   {<1, 1,-1>,
  58.    <0, 0, 0>,
  59.    <0, 0, 0>, 0
  60.   }
  61.  
  62. // The Plane_nn objects were formerly defined as quadrics but now can
  63. // be redefined as plane because of v1.5 no longer requires object identifiers
  64. // to be a specific type.
  65.  
  66. #declare Plane_YZ = plane {x,0}
  67.  
  68. #declare Plane_XZ = plane {y,0}
  69.  
  70. #declare Plane_XY = plane {z,0}
  71.  
  72. /* y^2 + z^2 - x = 0 */
  73. #declare Paraboloid_X =
  74.  quadric
  75.   {< 0, 1, 1>,
  76.    < 0, 0, 0>,
  77.    <-1, 0, 0>, 0
  78.   }
  79.  
  80. /* x^2 + z^2 - y = 0 */
  81. #declare Paraboloid_Y =
  82.  quadric
  83.   {<1,  0,  1>,
  84.    <0,  0,  0>,
  85.    <0, -1,  0>, 0
  86.   }
  87.  
  88. /* x^2 + y^2 - z = 0 */
  89. #declare Paraboloid_Z =
  90.  quadric
  91.   {<1,  1,  0>,
  92.    <0,  0,  0>,
  93.    <0,  0, -1>, 0
  94.   }
  95.  
  96. /* y - x^2 + z^2 = 0 */
  97. #declare Hyperboloid =
  98.  quadric
  99.   {<-1,  0,  1>,
  100.    < 0,  0,  0>,
  101.    < 0,  1,  0>, 0
  102.   }
  103.  
  104. #declare Hyperboloid_Y =
  105.  quadric                 /* Vertical hyperboloid */
  106.   {<1, -1,  1>,          /*                      */
  107.    <0,  0,  0>,          /*            \   /     */
  108.    <0,  0,  0>, -1       /* Like this:  ) (      */
  109.   }                      /*            /   \     */
  110.  
  111. // This primitive used to be an intersection of six planes.  For speed,
  112. // it is now a box and nothing else.
  113. #declare Cube = box { <-1, -1, -1>, <1, 1, 1> }
  114.  
  115. #declare Tetrahedron = 
  116.  intersection 
  117.   {plane {-y,1}
  118.    plane { z,1 rotate <-30,  0,  0>}
  119.    plane { x,1 rotate <  0, 30, 30>}
  120.    plane {-x,1 rotate <  0,-30,-30>}
  121.   }
  122.  
  123. #declare X_Disk =       /* Capped cylinder, Length in x axis */
  124.  intersection 
  125.   {object {Cylinder_X}
  126.    plane  { x,1}
  127.    plane  {-x,0}
  128.   }
  129.  
  130. #declare Y_Disk =    /* Capped cylinder, Length in y axis */
  131.  intersection
  132.   {object {Cylinder_Y}
  133.    plane  { y,1}
  134.    plane  {-y,0}
  135.   }
  136.  
  137. #declare Z_Disk =    /* Capped cylinder, Length in z axis */
  138.  intersection
  139.   {object {Cylinder_Z}
  140.    plane  {-z,1}
  141.    plane  { z,0}
  142.   }
  143. #declare Hexagon =             /* Hexagonal Solid, axis along x */
  144.  intersection                  /* Rotate 90 in z axis to stand up */
  145.   {plane {z,1}
  146.    plane {z,1 rotate < 60, 0, 0>}
  147.    plane {z,1 rotate <120, 0, 0>}
  148.    plane {z,1 rotate <180, 0, 0>}
  149.    plane {z,1 rotate <240, 0, 0>}
  150.    plane {z,1 rotate <300, 0, 0>}
  151.    plane {x,1}
  152.    plane {-x,1}
  153.   }
  154.  
  155. #declare Rhomboid =            /* Three Dimensional 4-Sided Diamond */
  156.  intersection 
  157.   {plane {-x,1 rotate <0, 0, -30>}
  158.    plane { x,1 rotate <0, 0, -30>}
  159.    plane { z,1}
  160.    plane {-z,1}
  161.    plane { y,1}
  162.    plane {-y,1}
  163.   }
  164.  
  165. #declare Square_X =   /* Scale-able plane in x */
  166.  union 
  167.   {triangle {<0, 1, -1>, <0, -1, 1>, <1, 1, 1>}
  168.    triangle {<0, 1, -1>, <0, -1, 1>, <0,-1,-1>}
  169.   }
  170.  
  171. #declare Square_Y =  /* Scale-able plane in y */
  172.  union 
  173.   {triangle {<-1, 0, 1>, <1, 0, -1>, < 1, 0,  1>}
  174.    triangle {<-1, 0, 1>, <1, 0, -1>, <-1, 0, -1>}
  175.   }
  176.  
  177. #declare Square_Z =  /* Scale-able plane in z */
  178.  union 
  179.   {triangle {<-1, 1, 0>, <1, -1, 0>, <-1, -1, 0>}
  180.    triangle {<-1, 1, 0>, <1, -1, 0>, < 1,  1, 0>}
  181.   }
  182.  
  183. #declare Pyramid =
  184.  union 
  185.   {triangle {<-1, 0, -1>, <+1, 0, -1>, <0, 1, 0>}
  186.    triangle {<+1, 0, -1>, <+1, 0, +1>, <0, 1, 0>}
  187.    triangle {<-1, 0, +1>, <+1, 0, +1>, <0, 1, 0>}
  188.    triangle {<-1, 0, +1>, <-1, 0, -1>, <0, 1, 0>}
  189.    object {Square_Y}
  190.   }
  191.  
  192. #version Shapes_Old_Temp 
  193.